From c34efc6cd8222d6d5af8614f9d28650108aa9d3e Mon Sep 17 00:00:00 2001 From: Jim Blandy Date: Tue, 29 Jun 1993 23:07:22 +0000 Subject: [PATCH] * xterm.c: Add CPP tangle from process.c to get definitions for FD_SET, etcetera. (XTread_socket): Use those macros when testing for dropped connection. --- src/xterm.c | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index bc14b6ff009..e4b514c17f4 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -93,6 +93,27 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /*#include */ #endif /* ! defined (HAVE_X11) */ +#ifdef FD_SET +/* We could get this from param.h, but better not to depend on finding that. + And better not to risk that it might define other symbols used in this + file. */ +#ifdef FD_SETSIZE +#define MAXDESC FD_SETSIZE +#else +#define MAXDESC 64 +#endif +#define SELECT_TYPE fd_set +#else /* no FD_SET */ +#define MAXDESC 32 +#define SELECT_TYPE int + +/* Define the macros to access a single-int bitmap of descriptors. */ +#define FD_SET(n, p) (*(p) |= (1 << (n))) +#define FD_CLR(n, p) (*(p) &= ~(1 << (n))) +#define FD_ISSET(n, p) (*(p) & (1 << (n))) +#define FD_ZERO(p) (*(p) = 0) +#endif /* no FD_SET */ + /* For sending Meta-characters. Do we need this? */ #define METABIT 0200 @@ -3274,12 +3295,12 @@ XTread_socket (sd, bufp, numchars, waitp, expected) /* AOJ 880406: if select returns true but XPending doesn't, it means that there is an EOF condition; in other words, that X has died. Act as if there had been a hangup. */ - int fd = ConnectionNumber (x_current_display); - int mask = 1 << fd; + SELECT_TYPE mask; + FD_SET(fd, &mask); if (0 != select (fd + 1, &mask, (long *) 0, (long *) 0, - (EMACS_TIME) 0) + (EMACS_TIME *) 0) && !XStuffPending ()) kill (getpid (), SIGHUP); } -- 2.30.2